Міністерство освіти та науки України
НУ „Львівська політехніка”
Лекція №12
з курсу: «Застосування засобів об’єктно-орієнтованого програмування в лінгвістичних задачах»
Львів - 2010
Розділ 10. Лігвістичні задачі
Сучасний фахівець повинен володіти основами лінгвістичного
мислення, розуміти сутність як вирішених, так і актуальних, але поки ще не
розв'язаних проблем комп'ютерної лінгвістики. Найважливішим принципом
роботи в цій області є поєднання типового фундаментального моделювання
окремих мовних явищ з інтегральним прикладним моделюванням
конкретної функціональної системи або технологічної процедури. Особлива
увага повинна приділятися семантичним метамовам і семантичним методам
обробки тексту.
Таким чином, рішення неформалізованих задач повинно базуватися на
когнітивно-комунікативну природу природної мови, яка в уточненому
вигляді може бути визначена так: мова - це не стільки "засіб виразу"
думок, скільки спосіб організації, уявлення і розвитку знань. Можна
розрізняти три типи дослідницьких ситуацій: (а) рішення чисто
лінгвістичних задачь; (б) використання лінгвістичних методів для вивчення
і моделювання немовних явищ; (в) достовірно комплексні дослідження з
об’єднуючою роллю лінгвістики.
Зростаюча практична значність лінгвістичного забезпечення
визначається такими причинами, як величезні об'єми текстів на природній
мові, що циркулюють в інформаційних системах; необхідність використання
нових стратегій обробки інформації з урахуванням семантичних законів
природньоїї мови; потреби в гнучкому і тісному симбіозі людини і
комп'ютерної системи; залучення в обробку багатообразних прихованих
знань, визначення(експлікація) яких можлива (і зручна!) тільки на
природній мові.
Перераховані завдання і методи їх рішення складають основу
інтенсивних досліджень. Наприклад активні експерименти з суфіксними
деревами привели до різкого знижень пам'яті яка необхідна, так що вони
стають де-факто стандартом в застосуваннях, пов'язаних з (нестрогим)
пошуком в словниках великих об'ємів. Список прикладів можна
продовжити.
Розглянемо задачі аналізу рядків, виникаючі при розробці систем
обробки текстової інформації. Ми не ставимо за мету дати точні рішення
всіх можливих задач, а швидше пропонуємо огляд існуючих алгоритмів,
відповідних для подібних системи. Термін аналіз рядків використовується
тут в досить загальному сенсі і визначає цілий клас завдань – таких, як
локалізація заданих підрядків, виділення довгих співпадаючих підрядків
двох рядків, обчислення відстані між двома рядками і т.д.
Перш за все зовсім у загальних рисах описується проблема, потім
приводяться точні формулювання.
Обговорюються алгоритми аналізу рядків, порівнюються їх можливості і
ефективність. Після цього йде опис основних алгоритмів.
Нарешті, розглядається застосування цих алгоритмів в пропонованій
системі.
10. Стрічки.1 Стрічки змінної довжини2.
1
Н. Вірт Алгоритми + Структури Даних = Програми
2 И.В. Романовский Дискретный анализ. СПб.: Невский диалект; 2003. – 30 с. Ил. Стр. 87
10.1. Стрічки, списки, послідовності
В багатьох розділах математики (неожиданно во многих) в якості об’єкта
дослідження розглядається кінцева послідовність однотипових елементів.
На відміну від багатомірніх векторів (или, в программистском понимании,
массивов) в таких випадках довжина послідовності може варьювати, і в
операціях з последовним доступом до елементу за номером рахується або
неможливим, або затруднительным.
В якості прикладів таких послідовностей можно назвати набір
коефіціентів багаточлена в математичному аналізі, послідовність вершин
багагранника або контура в геометрії, список ненульових елементів
разреженного вектора або матриці в лінійній алгебрі, ланцюговий список в
програмуванні, слово, стрічку тексту, сам текст або послідовність текстів в
багатьох розділах сучасної інформатики.
В чому відмінність понять "стрічка", "послідовність", "ланцюговий
список"? По-перше, в деталях їх представл...